#ifndef __OEGK_TYPES_HEADER__
#define __OEGK_TYPES_HEADER__

//////////////////////////////////////////////////////////////////////
// include files
#include <OETypes.h>
#include <OEMathTypes.h>

namespace OE { namespace OEGK {

//////////////////////////////////////////////////////////////////////
// OEGKTypes declaration begins

struct OEGKCurveParam
{
  public:
    CurveParam () : m_start(0), m_end(0) { };
    CurveParam (OEReal64 start, OEReal64 end) : m_start(start), m_end(end) { };

    OEReal64 start () { return m_start; };
    OEReal64 end () { return m_end; };

  private:
    OEReal64 m_start, m_end;
};

struct OEGKSurfaceParam
{
  public:
    SurfaceParam () : m_ustart(0), m_uend(0), m_vstart(0), m_vend(0) { };
    SurfaceParam (OEReal64 ustart, OEReal64 uend, OEReal64 vstart, OEReal64 vend)
      : m_ustart(ustart), m_uend(uend), m_vstart(vstart), m_vend(vend) { };

    OEReal64 ustart () { return m_ustart; };
    OEReal64 uend () { return m_uend; };

    OEReal64 vstart () { return m_vstart; };
    OEReal64 vend () { return m_vend; };

  private:
    OEReal64 m_ustart, m_uend, m_vstart, m_vend;
};

// OEGKTypes declaration ends
//////////////////////////////////////////////////////////////////////

}; };

#endif // __OEGK_TYPES_HEADER__
